The use of multiple monitors to display the graphical user interface (GUI) of a desktop, known as “multi-monitor”, is becoming increasingly commonplace in today's work environments. Extending a desktop across two or more monitors gives the user additional desktop area to work in and allows her to be more efficient and organized. For example, with multiple monitors, the user can open and use different applications or documents on different displays and multi-task more efficiently than with single monitor setups. Accordingly, the multi-monitor capability has become an important feature for both the convenience and efficiency of users.
Generally, to enable the multi-monitor mode on a traditional computer, a user simply connects multiple displays to the computer and configures the operating system (OS) through a built-in feature to extend the desktop across the displays. For example, the OS can identify which monitors are connected and collect certain information about each monitor, such as the monitor make, model, resolution, etc. The user can input certain other information that the system can't determine itself, such as the relative position of the monitors to each other, the primary monitor, each monitor's pivot (e.g., horizontal or vertical), etc. Once the information is input by the user, the OS can extend the desktop across the multiple displays in a configuration that is based on the collected information about the monitors and the information input by the user.
At the same time, with the rising popularity of cloud computing, remote desktop environments, such as those based on Virtual Desktop Infrastructure (VDI) and Desktop-as-a-Service (DAAS), are becoming increasingly prominent in the enterprise. In a conventional VDI or DAAS environment, a user is provisioned a virtual desktop and is allowed to access his or her virtual desktop over a remote network connection, such as a WAN connection. The virtual desktops are typically hosted on servers that reside in a data center of the enterprise (or a third-party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktops and all of the application execution takes place on the remote host server, which is linked to the local client device over the network, using a remote display protocol such as remote desktop protocol (RDP), PC-over-IP (PCoIP) protocol, virtual network computing (VNC) protocol, or the like. In the case where a web-based client such as an internet browser is implemented on the client device, the utilized protocol may be the Hypertext Transfer Protocol (HTTP). Using such a remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, such that the display (i.e., image data), sound, keyboard, mouse, and other input/output information is communicated between the local client device and the server. A common implementation of this approach is to host multiple desktop operating system instances on a server hardware platform running a hypervisor.
Each client device in the remote desktop environment has a client executing thereon to perform client-side functions of the remote desktop operations, such as the conveying of inputs from the client device to the virtual desktop on the server and the receiving of outputs from the virtual desktop. The client can be a stand-alone, designated application for accessing the remote desktop, known as a “native client”, and such native clients typically need to be downloaded and installed on the end user's device. The client can also be a standard internet browser, such as Firefox, available from the Mozilla Foundation; Chrome, available from Google, Inc.; Internet Explorer, available from Microsoft Corporation, etc., known as a “web-client”. In some cases, a plug-in can be used to modify or configure a standard internet browser for remote desktop applications.
Thus, to access a remote desktop, a user can open a native client on her desktop, log into the remote desktop, and interface with the remote desktop via the native client. Or, when using a web-client, the user can open a web browser, enter a Uniform Resource Locator (URL) corresponding to the virtual desktop into the web browser (or select/execute a link), log into her virtual desktop, and interface with the remote desktop via the browser.
As with locally executing machines, the multi-monitor feature is desirable for users of remotely executing desktops. However, in a remote desktop infrastructure, enabling the multi-monitor mode poses several challenges. For example, in a traditional remote desktop environment, the remote desktop cannot be extended across multiple monitors at the client device in the same way that a locally executing desktop can be extended across multiple monitors (as described above) because the virtual desktop actually executes on a server that is remote from the client device to which the multiple monitors are connected. To address this issue, some companies have developed native clients with multi-monitor capabilities that allow a user to extend a remote desktop to multiple monitors on the client device. An example of such a product is the VMware Horizon View by VMware, Inc.
However, several inefficiencies remain. In many cases, a user may prefer to, or only have the option of, accessing a remote desktop using a web client, which does not support multi-monitor functions like some native clients, such as the VMware Horizon View. For example, it may be inconvenient for a user to download and install a native client, the user may be unable to install a native client, or a native client may not be available to a user or for the user's device. In this case, the user might be unable to access the remote desktop in multi-monitor mode.
Further, with the proliferation of mobile devices, it would be desirable if in addition to extending a remote desktop to a monitor connected to the client device, a user also had the option of using the monitor of another device, e.g., a smart phone, tablet, laptop, another computer, etc. for extending the remote desktop. For example, so that a user accessing her remote desktop on a desktop computer could extend the remote desktop not only to another screen connected to her desktop computer but also to the screen of her tablet.
A more efficient approach is desirable for managing multi-monitor capabilities in remote desktop environments.